package fantasma;

public class CadenaEstadosFantasmaFactory implements ICadenaEstadosFantasmaFactory {

	@Override
	public EstadoFantasma crearCadenaEstadosFantasma(IFantasma fantasma) {
		EstadoFantasma estadoFantasmaCazador = new CazadorFactory().crearEstadoFantasma();
		EstadoFantasma estadoFantasmaPresa = new PresaFactory().crearEstadoFantasma();
		EstadoFantasma estadoFantasmaMuerto = new MuertoFactory().crearEstadoFantasma();
		
		estadoFantasmaCazador.setFantasma(fantasma);
		estadoFantasmaPresa.setFantasma(fantasma);
		estadoFantasmaMuerto.setFantasma(fantasma);
		
		estadoFantasmaCazador.setEstadoFantasmaSiguiente(estadoFantasmaPresa);
		estadoFantasmaPresa.setEstadoFantasmaAnterior(estadoFantasmaCazador);
		estadoFantasmaPresa.setEstadoFantasmaSiguiente(estadoFantasmaMuerto);
		estadoFantasmaMuerto.setEstadoFantasmaSiguiente(estadoFantasmaCazador);
		
		return estadoFantasmaCazador;
	}

}
